// Record<K,T>构造具有给定类型T的一组属性K的类型。在将一个类型的属性映射到另一个类型的属性时，Record非常方便。
/**
 * @param envConf 入参 未处理的env数据
 */




// Read all environment variable configuration files to process.env
function wrapperEnv(envConf: Recordable): ViteEnv {
    const ret: any = {};

    for (const envName of Object.keys(envConf)) {
        let realName = envConf[envName].replace(/\\n/g, '\n');
        realName = realName === 'true' ? true : realName === 'false' ? false : realName;

        if (envName === 'VITE_PORT') {
            realName = Number(realName);
        }
        if (envName === 'VITE_PROXY') {
            try {
                realName = JSON.parse(realName);
            } catch (error) { }
        }
        ret[envName] = realName;
        process.env[envName] = realName;
    }
    return ret;
}

// 加载环境变量
const loadEnv = () => import.meta.env
export {
    wrapperEnv,
    loadEnv
}